package public

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"strings"
)

//这里定义所有的错误
//错误代码定义
/*
0: 用户使用错误
1: 系统使用错误
2: 意外的错误
*/

type Errors struct {
	Msg string //错误信息
	Msc int    // 错误代码
}

//提示错误函数
func (e *Errors) Error() string {
	return fmt.Sprintf("%s || errCode : %d", e.Msg, e.Msc)
}

//创建错误
func NewError(tem string, code int, msg ...string) *Errors {
	for _, m := range msg {
		tem = strings.Replace(tem, "{}", m, 1)
	}
	return &Errors{
		Msc: code,
		Msg: tem,
	}

}

//根据错误创建用户返回

func NewJsonErrUse(code int, msg string) gin.H {
	err := gin.H{
		"errorCode": code,
		"errorMsg":  msg,
	}

	return err
}

//根据模板生成
func NewJsonErrUseTem(tem string, code int, msg ...string) gin.H {
	err := NewError(tem, code, msg...)

	return NewJsonErrUse(err.Msc, err.Msg)

}
